package com.legendframework.core;

import com.legendframework.core.log.Logger;

public interface ILegendPlugin extends RootCmd , ReloadPlugin , IDataSource {

    /**
     * 插件被启动时执行
     */
    void start();

    /**
     * 插件被卸载时执行
     */
    void end();

    /**
     * 当插件被载入的时调用
     * 该方法比 start() 更早执行
     * 不强制要求实现
     *
     * 框架启动前的初始化操作初始化
     * 或许你能想到实现这个方法后修改一下框架的一些参数，再让框架启动
     */
    default void load() {
    }

    /**
     * 日志对象
     * @return
     */
    Logger getLog();
}
